package twobranchsearch.isbalanced;

import twobranchTree.preorderTraversal.TreeNode;

/**
 * @Date 2020/03/15
 * @author 王光浩
 * @Thinking 使用递归的方式。（自底向上）
 * @Analysis 时间复杂度O（n），空间复杂度O（N）
 */
public class MyMethodOne {
	private boolean judge=true;
	public boolean isBalanced(TreeNode root) {
		recursively(root);
		 return judge;
	}
	//进行后序遍历
	private int recursively(TreeNode root) {
		if(root==null)return 0;
		if(!judge)return 0;
		int left=recursively(root.left);
		int right=recursively(root.right);
		if(Math.abs(left-right)>1)
			judge=false;
		return left>right?left+1:right+1;
	}
}
